/* BusinessObjectEntity - Decompiled by JODE
 * Visit http://jode.sourceforge.net/
 */
package net.da.core.entity;

import java.util.Calendar;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Version;

@Entity
@Table(name="sys_objects")
public class BusinessObjectEntity extends PersistentObjectEntity {

//  =============================================================
    @ManyToOne
    @JoinColumn(name="sys_modifier_id")
    private SysUserEntity sysModifier;

    @ManyToOne
    @JoinColumn(name="organisation_modifier_id")
    private OrganisationUserEntity organisationModifier;
//  =============================================================

    private Boolean isHidden;

//  =============================================================
    @ManyToOne
    @JoinColumn(name="sys_owner_id")
    private SysUserEntity sysOwner;

    @ManyToOne
    @JoinColumn(name="organisation_owner_id")
    private OrganisationUserEntity organisationOwner;
//  =============================================================

    private Boolean locked;

    @Temporal(TemporalType.DATE)
    private Calendar lockDate;

    private Boolean isImmutable;

    private Boolean isArchived;

//  =============================================================
    @ManyToOne
    @JoinColumn(name="sys_creator_id")
    private SysUserEntity sysCreator;

    @ManyToOne
    @JoinColumn(name="organisation_creator_id")
    private OrganisationUserEntity organisationCreator;
//  =============================================================

    @OneToOne
    @JoinColumn(name="acl_id", nullable=true)
    private AclEntity acl;

    @ManyToOne
    @JoinColumn(name="lock_owner_id")
    private OrganisationUserEntity lockOwner;

    @Column(name="modify_date", nullable=false)
    @Temporal(TemporalType.DATE)
    private Calendar modifyDate;

    @Column(name="creation_date", nullable=false)
    @Temporal(TemporalType.DATE)
    private Calendar creationDate;

    @Version
    private Integer version;

    public Integer getVersion() {
        return version;
    }

    public void setVersion(Integer version) {
        this.version = version;
    }

    public Calendar getModifyDate() {
        return modifyDate;
    }

    public void setModifyDate(Calendar modifyDate) {
        this.modifyDate = modifyDate;
    }

    public Calendar getCreationDate() {
        return creationDate;
    }

    public void setCreationDate(Calendar creationDate) {
        this.creationDate = creationDate;
    }

    public Boolean isHidden() {
        return isHidden;
    }

    public void setHidden(Boolean isHidden) {
        this.isHidden = isHidden;
    }

    public void setLockDate(Calendar lockDate) {
        this.lockDate = lockDate;
    }

    public Boolean isImmutable() {
        return isImmutable;
    }

    public void setImmutable(Boolean isImmutable) {
        this.isImmutable = isImmutable;
    }

    public Boolean isArchived() {
        return isArchived;
    }

    public void setArchived(Boolean isArchived) {
        this.isArchived = isArchived;
    }

    public AclEntity getAcl() {
        return acl;
    }

    public void setAcl(AclEntity acl) {
        this.acl = acl;
    }

    public SysUserEntity getSysOwner() {
        return sysOwner;
    }

    public void setSysOwner(SysUserEntity sysOwner) {
        this.sysOwner = sysOwner;
    }

    public OrganisationUserEntity getLockOwner() {
        return lockOwner;
    }

    public void setLockOwner(OrganisationUserEntity lockOwner) {
        this.lockOwner = lockOwner;
    }

    public OrganisationUserEntity getOrganisationCreator() {
        return organisationCreator;
    }

    public void setOrganisationCreator(OrganisationUserEntity organisationCreator) {
        this.organisationCreator = organisationCreator;
    }

    public OrganisationUserEntity getOrganisationModifier() {
        return organisationModifier;
    }

    public void setOrganisationModifier(OrganisationUserEntity organisationModifier) {
        this.organisationModifier = organisationModifier;
    }

    public OrganisationUserEntity getOrganisationOwner() {
        return organisationOwner;
    }

    public void setOrganisationOwner(OrganisationUserEntity organisationOwner) {
        this.organisationOwner = organisationOwner;
    }

    public SysUserEntity getSysCreator() {
        return sysCreator;
    }

    public void setSysCreator(SysUserEntity sysCreator) {
        this.sysCreator = sysCreator;
    }

    public SysUserEntity getSysModifier() {
        return sysModifier;
    }

    public void setSysModifier(SysUserEntity sysModifier) {
        this.sysModifier = sysModifier;
    }

    public Calendar getLockDate() {
        return lockDate;
    }

    public Boolean isLocked() {
        return locked;
    }

    public void setLocked(Boolean locked) {
        this.locked = locked;
    }
}
